<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::ihs::OpenGLViewer类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1ihs_1_1_open_g_l_viewer.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">类</a> &#124;
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-slots">Public 槽</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pri-types">Private 类型</a> &#124;
<a href="#pri-methods">Private 成员函数</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="classpcl_1_1ihs_1_1_open_g_l_viewer-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::ihs::OpenGLViewer类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>Viewer for the in-hand scanner based on Qt and OpenGL.  
 <a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="opengl__viewer_8h_source.html">opengl_viewer.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::ihs::OpenGLViewer 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1ihs_1_1_open_g_l_viewer.png" usemap="#pcl::ihs::OpenGLViewer_map" alt=""/>
  <map id="pcl::ihs::OpenGLViewer_map" name="pcl::ihs::OpenGLViewer_map">
<area href="classpcl_1_1ihs_1_1_in_hand_scanner.html" alt="pcl::ihs::InHandScanner" shape="rect" coords="0,112,154,136"/>
<area href="classpcl_1_1ihs_1_1_offline_integration.html" title="Read the clouds and transformations from files and integrate them into one common model." alt="pcl::ihs::OfflineIntegration" shape="rect" coords="164,112,318,136"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
类</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer_1_1_box_coefficients.html">BoxCoefficients</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Coefficients for the wireframe box.  <a href="classpcl_1_1ihs_1_1_open_g_l_viewer_1_1_box_coefficients.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer_1_1_f_p_s.html">FPS</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Please have a look at the documentation of calcFPS.  <a href="classpcl_1_1ihs_1_1_open_g_l_viewer_1_1_f_p_s.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:a7d310f171b7f7fa1de9e52bdcb8a4a5d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5d">MeshRepresentation</a> { <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5daa0b9aaec861866f0a223fc2e41eee025">MR_POINTS</a>
, <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5da98ae60aa71684a2b547744fae84dc939">MR_EDGES</a>
, <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5dafe64cddc651b88fafefffb6021cb23f2">MR_FACES</a>
 }</td></tr>
<tr class="memdesc:a7d310f171b7f7fa1de9e52bdcb8a4a5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">How to draw the mesh.  <a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5d">更多...</a><br /></td></tr>
<tr class="separator:a7d310f171b7f7fa1de9e52bdcb8a4a5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c26d51ba973360681188f8bb79d1f2a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2a">Coloring</a> { <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2aacaf9ac71c28e99e03dfec3b97472087f">COL_RGB</a>
, <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2aa31f100dcb00293f323b99c63f22f3a06">COL_ONE_COLOR</a>
, <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2aa012b85091f1ab57dda6c6721fca17508">COL_VISCONF</a>
 }</td></tr>
<tr class="memdesc:a6c26d51ba973360681188f8bb79d1f2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">How to color the shapes.  <a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2a">更多...</a><br /></td></tr>
<tr class="separator:a6c26d51ba973360681188f8bb79d1f2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30cedab41c0a26f51486c8e7461fa56c"><td class="memItemLeft" align="right" valign="top"><a id="a30cedab41c0a26f51486c8e7461fa56c"></a>
typedef <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_normal.html">pcl::PointXYZRGBNormal</a>&#160;</td><td class="memItemRight" valign="bottom"><b>PointXYZRGBNormal</b></td></tr>
<tr class="separator:a30cedab41c0a26f51486c8e7461fa56c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f6d77bcb674a4fff6938426a157edfd"><td class="memItemLeft" align="right" valign="top"><a id="a3f6d77bcb674a4fff6938426a157edfd"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_normal.html">PointXYZRGBNormal</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CloudXYZRGBNormal</b></td></tr>
<tr class="separator:a3f6d77bcb674a4fff6938426a157edfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a766de5f5f677d034e48772f32ca88bd4"><td class="memItemLeft" align="right" valign="top"><a id="a766de5f5f677d034e48772f32ca88bd4"></a>
typedef CloudXYZRGBNormal::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>CloudXYZRGBNormalPtr</b></td></tr>
<tr class="separator:a766de5f5f677d034e48772f32ca88bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c97d5d1e6ac94e953de80a7eb288186"><td class="memItemLeft" align="right" valign="top"><a id="a0c97d5d1e6ac94e953de80a7eb288186"></a>
typedef CloudXYZRGBNormal::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>CloudXYZRGBNormalConstPtr</b></td></tr>
<tr class="separator:a0c97d5d1e6ac94e953de80a7eb288186"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aede56ae44e2b16dd02aca97c398a202d"><td class="memItemLeft" align="right" valign="top"><a id="aede56ae44e2b16dd02aca97c398a202d"></a>
typedef pcl::ihs::Mesh&#160;</td><td class="memItemRight" valign="bottom"><b>Mesh</b></td></tr>
<tr class="separator:aede56ae44e2b16dd02aca97c398a202d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff8eebde7197c983f4a7d04e0bb0d298"><td class="memItemLeft" align="right" valign="top"><a id="aff8eebde7197c983f4a7d04e0bb0d298"></a>
typedef pcl::ihs::MeshPtr&#160;</td><td class="memItemRight" valign="bottom"><b>MeshPtr</b></td></tr>
<tr class="separator:aff8eebde7197c983f4a7d04e0bb0d298"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3db1748a278ba99f466fc7c3a1ad123"><td class="memItemLeft" align="right" valign="top"><a id="ab3db1748a278ba99f466fc7c3a1ad123"></a>
typedef pcl::ihs::MeshConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>MeshConstPtr</b></td></tr>
<tr class="separator:ab3db1748a278ba99f466fc7c3a1ad123"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afafdbf4cb152c15e55ab9ff733fd6bdf"><td class="memItemLeft" align="right" valign="top"><a id="afafdbf4cb152c15e55ab9ff733fd6bdf"></a>
typedef enum <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5d">pcl::ihs::OpenGLViewer::MeshRepresentation</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#afafdbf4cb152c15e55ab9ff733fd6bdf">MeshRepresentation</a></td></tr>
<tr class="memdesc:afafdbf4cb152c15e55ab9ff733fd6bdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">How to draw the mesh. <br /></td></tr>
<tr class="separator:afafdbf4cb152c15e55ab9ff733fd6bdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a310343301098f68a13a41a2d3597951e"><td class="memItemLeft" align="right" valign="top"><a id="a310343301098f68a13a41a2d3597951e"></a>
typedef enum <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2a">pcl::ihs::OpenGLViewer::Coloring</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a310343301098f68a13a41a2d3597951e">Coloring</a></td></tr>
<tr class="memdesc:a310343301098f68a13a41a2d3597951e"><td class="mdescLeft">&#160;</td><td class="mdescRight">How to color the shapes. <br /></td></tr>
<tr class="separator:a310343301098f68a13a41a2d3597951e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-slots"></a>
Public 槽</h2></td></tr>
<tr class="memitem:a0db8aaa1ae14ea035764b377b127cdfa"><td class="memItemLeft" align="right" valign="top"><a id="a0db8aaa1ae14ea035764b377b127cdfa"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a0db8aaa1ae14ea035764b377b127cdfa">timerCallback</a> ()</td></tr>
<tr class="memdesc:a0db8aaa1ae14ea035764b377b127cdfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requests the scene to be re-drawn (called periodically from a timer). <br /></td></tr>
<tr class="separator:a0db8aaa1ae14ea035764b377b127cdfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f30e0d992e6b817ce80c498eb9d073e"><td class="memItemLeft" align="right" valign="top"><a id="a9f30e0d992e6b817ce80c498eb9d073e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a9f30e0d992e6b817ce80c498eb9d073e">resetCamera</a> ()</td></tr>
<tr class="memdesc:a9f30e0d992e6b817ce80c498eb9d073e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the virtual camera position and orientation. <br /></td></tr>
<tr class="separator:a9f30e0d992e6b817ce80c498eb9d073e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6659dde03a0faf4c6a14a5c8846cd423"><td class="memItemLeft" align="right" valign="top"><a id="a6659dde03a0faf4c6a14a5c8846cd423"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6659dde03a0faf4c6a14a5c8846cd423">toggleMeshRepresentation</a> ()</td></tr>
<tr class="memdesc:a6659dde03a0faf4c6a14a5c8846cd423"><td class="mdescLeft">&#160;</td><td class="mdescRight">Toggle the mesh representation. <br /></td></tr>
<tr class="separator:a6659dde03a0faf4c6a14a5c8846cd423"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a235cac246cccf366d97ea71cc24dbebf"><td class="memItemLeft" align="right" valign="top"><a id="a235cac246cccf366d97ea71cc24dbebf"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a235cac246cccf366d97ea71cc24dbebf">setMeshRepresentation</a> (const <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5d">MeshRepresentation</a> &amp;representation)</td></tr>
<tr class="memdesc:a235cac246cccf366d97ea71cc24dbebf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the mesh representation. <br /></td></tr>
<tr class="separator:a235cac246cccf366d97ea71cc24dbebf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d86c1281fd735dd10bec2d2aedff1a5"><td class="memItemLeft" align="right" valign="top"><a id="a2d86c1281fd735dd10bec2d2aedff1a5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a2d86c1281fd735dd10bec2d2aedff1a5">toggleColoring</a> ()</td></tr>
<tr class="memdesc:a2d86c1281fd735dd10bec2d2aedff1a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Toggle the coloring mode. <br /></td></tr>
<tr class="separator:a2d86c1281fd735dd10bec2d2aedff1a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc270d87bf577c816100e29c4cc46a0d"><td class="memItemLeft" align="right" valign="top"><a id="afc270d87bf577c816100e29c4cc46a0d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#afc270d87bf577c816100e29c4cc46a0d">setColoring</a> (const <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2a">Coloring</a> &amp;coloring)</td></tr>
<tr class="memdesc:afc270d87bf577c816100e29c4cc46a0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the coloring mode. <br /></td></tr>
<tr class="separator:afc270d87bf577c816100e29c4cc46a0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a3cd39f509a3f522269a6ff2bbb2b0a5c"><td class="memItemLeft" align="right" valign="top"><a id="a3cd39f509a3f522269a6ff2bbb2b0a5c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a3cd39f509a3f522269a6ff2bbb2b0a5c">OpenGLViewer</a> (QWidget *parent=0)</td></tr>
<tr class="memdesc:a3cd39f509a3f522269a6ff2bbb2b0a5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:a3cd39f509a3f522269a6ff2bbb2b0a5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17c68b4773e6ba251ce21400e8c95090"><td class="memItemLeft" align="right" valign="top"><a id="a17c68b4773e6ba251ce21400e8c95090"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a17c68b4773e6ba251ce21400e8c95090">~OpenGLViewer</a> ()</td></tr>
<tr class="memdesc:a17c68b4773e6ba251ce21400e8c95090"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a17c68b4773e6ba251ce21400e8c95090"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ce727785092d0b94a0c8372147efefa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a0ce727785092d0b94a0c8372147efefa">addMesh</a> (const MeshConstPtr &amp;mesh, const std::string &amp;id, const Eigen::Isometry3d &amp;T=Eigen::Isometry3d::Identity())</td></tr>
<tr class="memdesc:a0ce727785092d0b94a0c8372147efefa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a mesh to be drawn.  <a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a0ce727785092d0b94a0c8372147efefa">更多...</a><br /></td></tr>
<tr class="separator:a0ce727785092d0b94a0c8372147efefa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62abfdf0d01ef03f72b1e44849b99bc1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a62abfdf0d01ef03f72b1e44849b99bc1">addMesh</a> (const CloudXYZRGBNormalConstPtr &amp;cloud, const std::string &amp;id, const Eigen::Isometry3d &amp;T=Eigen::Isometry3d::Identity())</td></tr>
<tr class="memdesc:a62abfdf0d01ef03f72b1e44849b99bc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert an organized cloud to a mesh and draw it.  <a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a62abfdf0d01ef03f72b1e44849b99bc1">更多...</a><br /></td></tr>
<tr class="separator:a62abfdf0d01ef03f72b1e44849b99bc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2bfcd7f6b8663552d5d92542c3a8a91"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#ac2bfcd7f6b8663552d5d92542c3a8a91">removeMesh</a> (const std::string &amp;id)</td></tr>
<tr class="memdesc:ac2bfcd7f6b8663552d5d92542c3a8a91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove the mesh with the given id.  <a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#ac2bfcd7f6b8663552d5d92542c3a8a91">更多...</a><br /></td></tr>
<tr class="separator:ac2bfcd7f6b8663552d5d92542c3a8a91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a783683d28b1badb70e2046d285914385"><td class="memItemLeft" align="right" valign="top"><a id="a783683d28b1badb70e2046d285914385"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a783683d28b1badb70e2046d285914385">removeAllMeshes</a> ()</td></tr>
<tr class="memdesc:a783683d28b1badb70e2046d285914385"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove all meshes that are currently drawn. <br /></td></tr>
<tr class="separator:a783683d28b1badb70e2046d285914385"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a823c4d8e2460b71cb11c24241250eb1b"><td class="memItemLeft" align="right" valign="top"><a id="a823c4d8e2460b71cb11c24241250eb1b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a823c4d8e2460b71cb11c24241250eb1b">setBoxCoefficients</a> (const <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer_1_1_box_coefficients.html">BoxCoefficients</a> &amp;coeffs)</td></tr>
<tr class="memdesc:a823c4d8e2460b71cb11c24241250eb1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the coefficients for the box. <br /></td></tr>
<tr class="separator:a823c4d8e2460b71cb11c24241250eb1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac00ff8b3177b50bdd144be62789ef3d1"><td class="memItemLeft" align="right" valign="top"><a id="ac00ff8b3177b50bdd144be62789ef3d1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#ac00ff8b3177b50bdd144be62789ef3d1">setDrawBox</a> (const bool enabled)</td></tr>
<tr class="memdesc:ac00ff8b3177b50bdd144be62789ef3d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable / disable drawing the box. <br /></td></tr>
<tr class="separator:ac00ff8b3177b50bdd144be62789ef3d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21235013292e15286e59080f3f6ac766"><td class="memItemLeft" align="right" valign="top"><a id="a21235013292e15286e59080f3f6ac766"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a21235013292e15286e59080f3f6ac766">getDrawBox</a> () const</td></tr>
<tr class="memdesc:a21235013292e15286e59080f3f6ac766"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the box is drawn. <br /></td></tr>
<tr class="separator:a21235013292e15286e59080f3f6ac766"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23a40273b9993286c63a5546440c68c8"><td class="memItemLeft" align="right" valign="top"><a id="a23a40273b9993286c63a5546440c68c8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a23a40273b9993286c63a5546440c68c8">setPivot</a> (const Eigen::Vector3d &amp;pivot)</td></tr>
<tr class="memdesc:a23a40273b9993286c63a5546440c68c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the point around which the camera rotates during mouse navigation. <br /></td></tr>
<tr class="separator:a23a40273b9993286c63a5546440c68c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad055ccfc24cac9e61328368cfe54bdbb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#ad055ccfc24cac9e61328368cfe54bdbb">setPivot</a> (const std::string &amp;id)</td></tr>
<tr class="memdesc:ad055ccfc24cac9e61328368cfe54bdbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Searches the given id in the drawn meshes and calculates the pivot as the centroid of the found geometry.  <a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#ad055ccfc24cac9e61328368cfe54bdbb">更多...</a><br /></td></tr>
<tr class="separator:ad055ccfc24cac9e61328368cfe54bdbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0d83bcc6f2efb1662ff3d15512cd29d"><td class="memItemLeft" align="right" valign="top"><a id="af0d83bcc6f2efb1662ff3d15512cd29d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#af0d83bcc6f2efb1662ff3d15512cd29d">stopTimer</a> ()</td></tr>
<tr class="memdesc:af0d83bcc6f2efb1662ff3d15512cd29d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop the visualization timer. <br /></td></tr>
<tr class="separator:af0d83bcc6f2efb1662ff3d15512cd29d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cef087e01bdd8684d810afa379d0a66"><td class="memItemLeft" align="right" valign="top"><a id="a6cef087e01bdd8684d810afa379d0a66"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6cef087e01bdd8684d810afa379d0a66">setVisibilityConfidenceNormalization</a> (const float vis_conf_norm)</td></tr>
<tr class="memdesc:a6cef087e01bdd8684d810afa379d0a66"><td class="mdescLeft">&#160;</td><td class="mdescRight">The visibility confidence is normalized with this value (must be greater than 1). <br /></td></tr>
<tr class="separator:a6cef087e01bdd8684d810afa379d0a66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e998f6b14529e76ee7fc44d14b19cd6"><td class="memItemLeft" align="right" valign="top">virtual QSize&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7e998f6b14529e76ee7fc44d14b19cd6">minimumSizeHint</a> () const</td></tr>
<tr class="separator:a7e998f6b14529e76ee7fc44d14b19cd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1070b3d16312e080b8ec92379f224a65"><td class="memItemLeft" align="right" valign="top">virtual QSize&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a1070b3d16312e080b8ec92379f224a65">sizeHint</a> () const</td></tr>
<tr class="separator:a1070b3d16312e080b8ec92379f224a65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ad915a73abde6f9b370268886bcc8db"><td class="memItemLeft" align="right" valign="top"><a id="a2ad915a73abde6f9b370268886bcc8db"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a2ad915a73abde6f9b370268886bcc8db">setScalingFactor</a> (const double scale)</td></tr>
<tr class="memdesc:a2ad915a73abde6f9b370268886bcc8db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the scaling factor to convert from meters to the unit of the drawn files. <br /></td></tr>
<tr class="separator:a2ad915a73abde6f9b370268886bcc8db"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:aab6fb46377e40b2f9d6aabf93c76ff3a"><td class="memTemplParams" colspan="2">template&lt;class FPS &gt; </td></tr>
<tr class="memitem:aab6fb46377e40b2f9d6aabf93c76ff3a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#aab6fb46377e40b2f9d6aabf93c76ff3a">calcFPS</a> (<a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer_1_1_f_p_s.html">FPS</a> &amp;fps) const</td></tr>
<tr class="separator:aab6fb46377e40b2f9d6aabf93c76ff3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8645defcb16553cc5db8d51b13779a3f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a8645defcb16553cc5db8d51b13779a3f">paintEvent</a> (QPaintEvent *event)</td></tr>
<tr class="separator:a8645defcb16553cc5db8d51b13779a3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
Private 类型</h2></td></tr>
<tr class="memitem:afa515871ed18d7607ddbd87c3f6ed029"><td class="memItemLeft" align="right" valign="top"><a id="afa515871ed18d7607ddbd87c3f6ed029"></a>
typedef Eigen::Matrix&lt; unsigned char, 3, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Color</b></td></tr>
<tr class="separator:afa515871ed18d7607ddbd87c3f6ed029"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9068bc5bff15f719915cc9ccaba5d110"><td class="memItemLeft" align="right" valign="top"><a id="a9068bc5bff15f719915cc9ccaba5d110"></a>
typedef Eigen::Matrix&lt; unsigned char, 3, Eigen::Dynamic &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Colors</b></td></tr>
<tr class="separator:a9068bc5bff15f719915cc9ccaba5d110"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15c1f8cbf7a5ed6ce5e49b995e92a086"><td class="memItemLeft" align="right" valign="top"><a id="a15c1f8cbf7a5ed6ce5e49b995e92a086"></a>
typedef Eigen::Matrix&lt; unsigned char, 3, 256 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Colormap</b></td></tr>
<tr class="separator:a15c1f8cbf7a5ed6ce5e49b995e92a086"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e2b00925bb866d088a7468ee91fbfc3"><td class="memItemLeft" align="right" valign="top"><a id="a4e2b00925bb866d088a7468ee91fbfc3"></a>
typedef boost::unordered_map&lt; std::string, CloudXYZRGBNormalPtr &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CloudXYZRGBNormalMap</b></td></tr>
<tr class="separator:a4e2b00925bb866d088a7468ee91fbfc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c44ace45bcec48483f87d37fbe1eb8e"><td class="memItemLeft" align="right" valign="top"><a id="a4c44ace45bcec48483f87d37fbe1eb8e"></a>
typedef <a class="el" href="structpcl_1_1ihs_1_1_point_i_h_s.html">pcl::ihs::PointIHS</a>&#160;</td><td class="memItemRight" valign="bottom"><b>PointIHS</b></td></tr>
<tr class="separator:a4c44ace45bcec48483f87d37fbe1eb8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6dcc621bd9111aff7e5c34d450b07dc"><td class="memItemLeft" align="right" valign="top"><a id="ac6dcc621bd9111aff7e5c34d450b07dc"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::ihs::CloudIHS</a>&#160;</td><td class="memItemRight" valign="bottom"><b>CloudIHS</b></td></tr>
<tr class="separator:ac6dcc621bd9111aff7e5c34d450b07dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bb4825c6555df87d0243dbf8e8e4dde"><td class="memItemLeft" align="right" valign="top"><a id="a7bb4825c6555df87d0243dbf8e8e4dde"></a>
typedef pcl::ihs::CloudIHSPtr&#160;</td><td class="memItemRight" valign="bottom"><b>CloudIHSPtr</b></td></tr>
<tr class="separator:a7bb4825c6555df87d0243dbf8e8e4dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add2dfc34c208745310ad574e82afb927"><td class="memItemLeft" align="right" valign="top"><a id="add2dfc34c208745310ad574e82afb927"></a>
typedef pcl::ihs::CloudIHSConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>CloudIHSConstPtr</b></td></tr>
<tr class="separator:add2dfc34c208745310ad574e82afb927"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86e9a0346a4b2c1c619d104de47217f5"><td class="memItemLeft" align="right" valign="top"><a id="a86e9a0346a4b2c1c619d104de47217f5"></a>
typedef <a class="el" href="classpcl_1_1ihs_1_1detail_1_1_face_vertex_mesh.html">pcl::ihs::detail::FaceVertexMesh</a>&#160;</td><td class="memItemRight" valign="bottom"><b>FaceVertexMesh</b></td></tr>
<tr class="separator:a86e9a0346a4b2c1c619d104de47217f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e34e1ba58eacb2d48bc4082534df73c"><td class="memItemLeft" align="right" valign="top"><a id="a1e34e1ba58eacb2d48bc4082534df73c"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1ihs_1_1detail_1_1_face_vertex_mesh.html">FaceVertexMesh</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>FaceVertexMeshPtr</b></td></tr>
<tr class="separator:a1e34e1ba58eacb2d48bc4082534df73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08df1ce7eb032dd84db851b5d60c6d5b"><td class="memItemLeft" align="right" valign="top"><a id="a08df1ce7eb032dd84db851b5d60c6d5b"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1ihs_1_1detail_1_1_face_vertex_mesh.html">FaceVertexMesh</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>FaceVertexMeshConstPtr</b></td></tr>
<tr class="separator:a08df1ce7eb032dd84db851b5d60c6d5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56d4fa20cc208896f7b3c4e23f7cbb5f"><td class="memItemLeft" align="right" valign="top"><a id="a56d4fa20cc208896f7b3c4e23f7cbb5f"></a>
typedef boost::unordered_map&lt; std::string, FaceVertexMeshPtr &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>FaceVertexMeshMap</b></td></tr>
<tr class="separator:a56d4fa20cc208896f7b3c4e23f7cbb5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private 成员函数</h2></td></tr>
<tr class="memitem:a4270be1891ab01ab25db47d0e543017f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a4270be1891ab01ab25db47d0e543017f">getMeshIsAdded</a> (const std::string &amp;id)</td></tr>
<tr class="memdesc:a4270be1891ab01ab25db47d0e543017f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the mesh with the given id is added.  <a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a4270be1891ab01ab25db47d0e543017f">更多...</a><br /></td></tr>
<tr class="separator:a4270be1891ab01ab25db47d0e543017f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7cc298fb768d324fb9eb5b77f508764"><td class="memItemLeft" align="right" valign="top"><a id="ac7cc298fb768d324fb9eb5b77f508764"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#ac7cc298fb768d324fb9eb5b77f508764">calcPivot</a> ()</td></tr>
<tr class="memdesc:ac7cc298fb768d324fb9eb5b77f508764"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the pivot for the stored id. <br /></td></tr>
<tr class="separator:ac7cc298fb768d324fb9eb5b77f508764"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a129885b41e9a4ea72bc50f093db39780"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a129885b41e9a4ea72bc50f093db39780">drawMeshes</a> ()</td></tr>
<tr class="memdesc:a129885b41e9a4ea72bc50f093db39780"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw all meshes.  <a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a129885b41e9a4ea72bc50f093db39780">更多...</a><br /></td></tr>
<tr class="separator:a129885b41e9a4ea72bc50f093db39780"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dde6f08612c6c079b0bc8d42fe2973a"><td class="memItemLeft" align="right" valign="top"><a id="a5dde6f08612c6c079b0bc8d42fe2973a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a5dde6f08612c6c079b0bc8d42fe2973a">drawBox</a> ()</td></tr>
<tr class="memdesc:a5dde6f08612c6c079b0bc8d42fe2973a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw a wireframe box. <br /></td></tr>
<tr class="separator:a5dde6f08612c6c079b0bc8d42fe2973a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b5c8ff9117593e03d8621943becea03"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7b5c8ff9117593e03d8621943becea03">initializeGL</a> ()</td></tr>
<tr class="separator:a7b5c8ff9117593e03d8621943becea03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75e40844574ca2c0bf104f7afb797051"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a75e40844574ca2c0bf104f7afb797051">setupViewport</a> (const int w, const int h)</td></tr>
<tr class="separator:a75e40844574ca2c0bf104f7afb797051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49f5606250b6754f465a676536aba29b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a49f5606250b6754f465a676536aba29b">resizeGL</a> (int w, int h)</td></tr>
<tr class="separator:a49f5606250b6754f465a676536aba29b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10332f8176bfebc844cffb371a3b4fa3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a10332f8176bfebc844cffb371a3b4fa3">mousePressEvent</a> (QMouseEvent *event)</td></tr>
<tr class="separator:a10332f8176bfebc844cffb371a3b4fa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa037721402932ac339ec1394b6bfb71c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#aa037721402932ac339ec1394b6bfb71c">mouseMoveEvent</a> (QMouseEvent *event)</td></tr>
<tr class="separator:aa037721402932ac339ec1394b6bfb71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b1c9829dce9733267be6d15b470e0f5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a5b1c9829dce9733267be6d15b470e0f5">wheelEvent</a> (QWheelEvent *event)</td></tr>
<tr class="separator:a5b1c9829dce9733267be6d15b470e0f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:aed9d61c6a4583a1f8ffd54a5a486b48c"><td class="memItemLeft" align="right" valign="top"><a id="aed9d61c6a4583a1f8ffd54a5a486b48c"></a>
boost::mutex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#aed9d61c6a4583a1f8ffd54a5a486b48c">mutex_vis_</a></td></tr>
<tr class="memdesc:aed9d61c6a4583a1f8ffd54a5a486b48c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronization. <br /></td></tr>
<tr class="separator:aed9d61c6a4583a1f8ffd54a5a486b48c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abda33a4ecba2a7c60f2505bd1c717b8e"><td class="memItemLeft" align="right" valign="top"><a id="abda33a4ecba2a7c60f2505bd1c717b8e"></a>
boost::shared_ptr&lt; QTimer &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#abda33a4ecba2a7c60f2505bd1c717b8e">timer_vis_</a></td></tr>
<tr class="memdesc:abda33a4ecba2a7c60f2505bd1c717b8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Visualization timer. <br /></td></tr>
<tr class="separator:abda33a4ecba2a7c60f2505bd1c717b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfe02553331dc435b5adc7275cfff3a9"><td class="memItemLeft" align="right" valign="top"><a id="abfe02553331dc435b5adc7275cfff3a9"></a>
Colormap&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#abfe02553331dc435b5adc7275cfff3a9">colormap_</a></td></tr>
<tr class="memdesc:abfe02553331dc435b5adc7275cfff3a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Colormap. <br /></td></tr>
<tr class="separator:abfe02553331dc435b5adc7275cfff3a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ddd71411321f496566d368848b46051"><td class="memItemLeft" align="right" valign="top"><a id="a3ddd71411321f496566d368848b46051"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a3ddd71411321f496566d368848b46051">vis_conf_norm_</a></td></tr>
<tr class="memdesc:a3ddd71411321f496566d368848b46051"><td class="mdescLeft">&#160;</td><td class="mdescRight">The visibility confidence is normalized with this value. <br /></td></tr>
<tr class="separator:a3ddd71411321f496566d368848b46051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51a7fd037c2699900b7ab0273bd5881f"><td class="memItemLeft" align="right" valign="top"><a id="a51a7fd037c2699900b7ab0273bd5881f"></a>
FaceVertexMeshMap&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a51a7fd037c2699900b7ab0273bd5881f">drawn_meshes_</a></td></tr>
<tr class="memdesc:a51a7fd037c2699900b7ab0273bd5881f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Meshes stored for visualization. <br /></td></tr>
<tr class="separator:a51a7fd037c2699900b7ab0273bd5881f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b7f56c8a5a025db7b8e81d38b7d7a68"><td class="memItemLeft" align="right" valign="top"><a id="a8b7f56c8a5a025db7b8e81d38b7d7a68"></a>
<a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5d">MeshRepresentation</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a8b7f56c8a5a025db7b8e81d38b7d7a68">mesh_representation_</a></td></tr>
<tr class="memdesc:a8b7f56c8a5a025db7b8e81d38b7d7a68"><td class="mdescLeft">&#160;</td><td class="mdescRight">How to draw the mesh. <br /></td></tr>
<tr class="separator:a8b7f56c8a5a025db7b8e81d38b7d7a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70207c16152f9bca4c3fe2027bfc79d4"><td class="memItemLeft" align="right" valign="top"><a id="a70207c16152f9bca4c3fe2027bfc79d4"></a>
<a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2a">Coloring</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a70207c16152f9bca4c3fe2027bfc79d4">coloring_</a></td></tr>
<tr class="memdesc:a70207c16152f9bca4c3fe2027bfc79d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">How to color the shapes. <br /></td></tr>
<tr class="separator:a70207c16152f9bca4c3fe2027bfc79d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88d665e892cb792faa11c07377ba9784"><td class="memItemLeft" align="right" valign="top"><a id="a88d665e892cb792faa11c07377ba9784"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a88d665e892cb792faa11c07377ba9784">draw_box_</a></td></tr>
<tr class="memdesc:a88d665e892cb792faa11c07377ba9784"><td class="mdescLeft">&#160;</td><td class="mdescRight">A box is drawn if this value is true. <br /></td></tr>
<tr class="separator:a88d665e892cb792faa11c07377ba9784"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a315c1bdf461166bbb28fdb3b0cf4274c"><td class="memItemLeft" align="right" valign="top"><a id="a315c1bdf461166bbb28fdb3b0cf4274c"></a>
<a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer_1_1_box_coefficients.html">BoxCoefficients</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a315c1bdf461166bbb28fdb3b0cf4274c">box_coefficients_</a></td></tr>
<tr class="memdesc:a315c1bdf461166bbb28fdb3b0cf4274c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Coefficients of the drawn box. <br /></td></tr>
<tr class="separator:a315c1bdf461166bbb28fdb3b0cf4274c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b7d9299198d714397416b662948cf8f"><td class="memItemLeft" align="right" valign="top"><a id="a8b7d9299198d714397416b662948cf8f"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a8b7d9299198d714397416b662948cf8f">scaling_factor_</a></td></tr>
<tr class="memdesc:a8b7d9299198d714397416b662948cf8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scaling factor to convert from meters to the unit of the drawn files. <br /></td></tr>
<tr class="separator:a8b7d9299198d714397416b662948cf8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec96f89a4d63e9fe95c60d77f8165f0a"><td class="memItemLeft" align="right" valign="top"><a id="aec96f89a4d63e9fe95c60d77f8165f0a"></a>
Eigen::Quaterniond&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#aec96f89a4d63e9fe95c60d77f8165f0a">R_cam_</a></td></tr>
<tr class="memdesc:aec96f89a4d63e9fe95c60d77f8165f0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotation of the camera. <br /></td></tr>
<tr class="separator:aec96f89a4d63e9fe95c60d77f8165f0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec2280b95ae04b586ee7a0217b49070c"><td class="memItemLeft" align="right" valign="top"><a id="aec2280b95ae04b586ee7a0217b49070c"></a>
Eigen::Vector3d&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#aec2280b95ae04b586ee7a0217b49070c">t_cam_</a></td></tr>
<tr class="memdesc:aec2280b95ae04b586ee7a0217b49070c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translation of the camera. <br /></td></tr>
<tr class="separator:aec2280b95ae04b586ee7a0217b49070c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9178230064f130ed3440b9695b86f62"><td class="memItemLeft" align="right" valign="top"><a id="ae9178230064f130ed3440b9695b86f62"></a>
Eigen::Vector3d&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#ae9178230064f130ed3440b9695b86f62">cam_pivot_</a></td></tr>
<tr class="memdesc:ae9178230064f130ed3440b9695b86f62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Center of rotation during mouse navigation. <br /></td></tr>
<tr class="separator:ae9178230064f130ed3440b9695b86f62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac390378cef07c3c80d7b69503d54e083"><td class="memItemLeft" align="right" valign="top"><a id="ac390378cef07c3c80d7b69503d54e083"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#ac390378cef07c3c80d7b69503d54e083">cam_pivot_id_</a></td></tr>
<tr class="memdesc:ac390378cef07c3c80d7b69503d54e083"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the pivot for the mesh with the given id. <br /></td></tr>
<tr class="separator:ac390378cef07c3c80d7b69503d54e083"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b9a3e4cf1401c2a1034dea28fcbff76"><td class="memItemLeft" align="right" valign="top"><a id="a7b9a3e4cf1401c2a1034dea28fcbff76"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7b9a3e4cf1401c2a1034dea28fcbff76">mouse_pressed_begin_</a></td></tr>
<tr class="memdesc:a7b9a3e4cf1401c2a1034dea28fcbff76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true right after the mouse got pressed and false if the mouse got moved. <br /></td></tr>
<tr class="separator:a7b9a3e4cf1401c2a1034dea28fcbff76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2013fb078b17fe30da380e246cde289c"><td class="memItemLeft" align="right" valign="top"><a id="a2013fb078b17fe30da380e246cde289c"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a2013fb078b17fe30da380e246cde289c">x_prev_</a></td></tr>
<tr class="memdesc:a2013fb078b17fe30da380e246cde289c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mouse x-position of the previous mouse move event. <br /></td></tr>
<tr class="separator:a2013fb078b17fe30da380e246cde289c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bcb7f14712132faec194dfa632ef969"><td class="memItemLeft" align="right" valign="top"><a id="a0bcb7f14712132faec194dfa632ef969"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a0bcb7f14712132faec194dfa632ef969">y_prev_</a></td></tr>
<tr class="memdesc:a0bcb7f14712132faec194dfa632ef969"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mouse y-position of the previous mouse move event. <br /></td></tr>
<tr class="separator:a0bcb7f14712132faec194dfa632ef969"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>Viewer for the in-hand scanner based on Qt and OpenGL. </p>
<dl class="section note"><dt>注解</dt><dd>Currently you have to derive from this class to use it. Implement the paintEvent: Call the paint event of this class and declare a QPainter. </dd></dl>
</div><h2 class="groupheader">成员枚举类型说明</h2>
<a id="a6c26d51ba973360681188f8bb79d1f2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c26d51ba973360681188f8bb79d1f2a">&#9670;&nbsp;</a></span>Coloring</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2a">pcl::ihs::OpenGLViewer::Coloring</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>How to color the shapes. </p>
<table class="fieldtable">
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="a6c26d51ba973360681188f8bb79d1f2aacaf9ac71c28e99e03dfec3b97472087f"></a>COL_RGB&#160;</td><td class="fielddoc"><p>Coloring according to the rgb values. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6c26d51ba973360681188f8bb79d1f2aa31f100dcb00293f323b99c63f22f3a06"></a>COL_ONE_COLOR&#160;</td><td class="fielddoc"><p>Use one color for all points. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6c26d51ba973360681188f8bb79d1f2aa012b85091f1ab57dda6c6721fca17508"></a>COL_VISCONF&#160;</td><td class="fielddoc"><p>Coloring according to the visibility confidence. </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        {</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;          <a class="code" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2aacaf9ac71c28e99e03dfec3b97472087f">COL_RGB</a>,       </div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;          <a class="code" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2aa31f100dcb00293f323b99c63f22f3a06">COL_ONE_COLOR</a>, </div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;          <a class="code" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2aa012b85091f1ab57dda6c6721fca17508">COL_VISCONF</a>    </div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        } <a class="code" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2a">Coloring</a>;</div>
<div class="ttc" id="aclasspcl_1_1ihs_1_1_open_g_l_viewer_html_a6c26d51ba973360681188f8bb79d1f2a"><div class="ttname"><a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2a">pcl::ihs::OpenGLViewer::Coloring</a></div><div class="ttdeci">Coloring</div><div class="ttdoc">How to color the shapes.</div><div class="ttdef"><b>Definition:</b> opengl_viewer.h:132</div></div>
<div class="ttc" id="aclasspcl_1_1ihs_1_1_open_g_l_viewer_html_a6c26d51ba973360681188f8bb79d1f2aa012b85091f1ab57dda6c6721fca17508"><div class="ttname"><a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2aa012b85091f1ab57dda6c6721fca17508">pcl::ihs::OpenGLViewer::COL_VISCONF</a></div><div class="ttdeci">@ COL_VISCONF</div><div class="ttdef"><b>Definition:</b> opengl_viewer.h:135</div></div>
<div class="ttc" id="aclasspcl_1_1ihs_1_1_open_g_l_viewer_html_a6c26d51ba973360681188f8bb79d1f2aa31f100dcb00293f323b99c63f22f3a06"><div class="ttname"><a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2aa31f100dcb00293f323b99c63f22f3a06">pcl::ihs::OpenGLViewer::COL_ONE_COLOR</a></div><div class="ttdeci">@ COL_ONE_COLOR</div><div class="ttdef"><b>Definition:</b> opengl_viewer.h:134</div></div>
<div class="ttc" id="aclasspcl_1_1ihs_1_1_open_g_l_viewer_html_a6c26d51ba973360681188f8bb79d1f2aacaf9ac71c28e99e03dfec3b97472087f"><div class="ttname"><a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a6c26d51ba973360681188f8bb79d1f2aacaf9ac71c28e99e03dfec3b97472087f">pcl::ihs::OpenGLViewer::COL_RGB</a></div><div class="ttdeci">@ COL_RGB</div><div class="ttdef"><b>Definition:</b> opengl_viewer.h:133</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a7d310f171b7f7fa1de9e52bdcb8a4a5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d310f171b7f7fa1de9e52bdcb8a4a5d">&#9670;&nbsp;</a></span>MeshRepresentation</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5d">pcl::ihs::OpenGLViewer::MeshRepresentation</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>How to draw the mesh. </p>
<table class="fieldtable">
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="a7d310f171b7f7fa1de9e52bdcb8a4a5daa0b9aaec861866f0a223fc2e41eee025"></a>MR_POINTS&#160;</td><td class="fielddoc"><p>Draw the points. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7d310f171b7f7fa1de9e52bdcb8a4a5da98ae60aa71684a2b547744fae84dc939"></a>MR_EDGES&#160;</td><td class="fielddoc"><p>Wireframe represen of the mesh. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7d310f171b7f7fa1de9e52bdcb8a4a5dafe64cddc651b88fafefffb6021cb23f2"></a>MR_FACES&#160;</td><td class="fielddoc"><p>Draw the faces of the mesh without edges. </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        {</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;          <a class="code" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5daa0b9aaec861866f0a223fc2e41eee025">MR_POINTS</a>, </div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;          <a class="code" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5da98ae60aa71684a2b547744fae84dc939">MR_EDGES</a>,  </div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;          <a class="code" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5dafe64cddc651b88fafefffb6021cb23f2">MR_FACES</a>   </div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        } <a class="code" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5d">MeshRepresentation</a>;</div>
<div class="ttc" id="aclasspcl_1_1ihs_1_1_open_g_l_viewer_html_a7d310f171b7f7fa1de9e52bdcb8a4a5d"><div class="ttname"><a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5d">pcl::ihs::OpenGLViewer::MeshRepresentation</a></div><div class="ttdeci">MeshRepresentation</div><div class="ttdoc">How to draw the mesh.</div><div class="ttdef"><b>Definition:</b> opengl_viewer.h:124</div></div>
<div class="ttc" id="aclasspcl_1_1ihs_1_1_open_g_l_viewer_html_a7d310f171b7f7fa1de9e52bdcb8a4a5da98ae60aa71684a2b547744fae84dc939"><div class="ttname"><a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5da98ae60aa71684a2b547744fae84dc939">pcl::ihs::OpenGLViewer::MR_EDGES</a></div><div class="ttdeci">@ MR_EDGES</div><div class="ttdef"><b>Definition:</b> opengl_viewer.h:126</div></div>
<div class="ttc" id="aclasspcl_1_1ihs_1_1_open_g_l_viewer_html_a7d310f171b7f7fa1de9e52bdcb8a4a5daa0b9aaec861866f0a223fc2e41eee025"><div class="ttname"><a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5daa0b9aaec861866f0a223fc2e41eee025">pcl::ihs::OpenGLViewer::MR_POINTS</a></div><div class="ttdeci">@ MR_POINTS</div><div class="ttdef"><b>Definition:</b> opengl_viewer.h:125</div></div>
<div class="ttc" id="aclasspcl_1_1ihs_1_1_open_g_l_viewer_html_a7d310f171b7f7fa1de9e52bdcb8a4a5dafe64cddc651b88fafefffb6021cb23f2"><div class="ttname"><a href="classpcl_1_1ihs_1_1_open_g_l_viewer.html#a7d310f171b7f7fa1de9e52bdcb8a4a5dafe64cddc651b88fafefffb6021cb23f2">pcl::ihs::OpenGLViewer::MR_FACES</a></div><div class="ttdeci">@ MR_FACES</div><div class="ttdef"><b>Definition:</b> opengl_viewer.h:127</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="a62abfdf0d01ef03f72b1e44849b99bc1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62abfdf0d01ef03f72b1e44849b99bc1">&#9670;&nbsp;</a></span>addMesh() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::ihs::OpenGLViewer::addMesh </td>
          <td>(</td>
          <td class="paramtype">const CloudXYZRGBNormalConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Isometry3d &amp;&#160;</td>
          <td class="paramname"><em>T</em> = <code>Eigen::Isometry3d::Identity()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert an organized cloud to a mesh and draw it. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>Organized input cloud. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>Unique identifier for the mesh. The internal mesh is replaced by the converted input mesh if the id already exists. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">T</td><td>Transformation applied to the mesh. Defaults to an identity transformation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if success. </dd></dl>
<dl class="section note"><dt>注解</dt><dd>This method takes some time for the conversion). </dd></dl>

</div>
</div>
<a id="a0ce727785092d0b94a0c8372147efefa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ce727785092d0b94a0c8372147efefa">&#9670;&nbsp;</a></span>addMesh() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::ihs::OpenGLViewer::addMesh </td>
          <td>(</td>
          <td class="paramtype">const MeshConstPtr &amp;&#160;</td>
          <td class="paramname"><em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Isometry3d &amp;&#160;</td>
          <td class="paramname"><em>T</em> = <code>Eigen::Isometry3d::Identity()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a mesh to be drawn. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">mesh</td><td>The input mesh. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>Unique identifier for the mesh. The internal mesh is replaced by the input mesh if the id already exists. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">T</td><td>Transformation applied to the mesh. Defaults to an identity transformation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if success. </dd></dl>
<dl class="section note"><dt>注解</dt><dd>Converts the mesh to the internal representation better suited for visualization. Therefore this method takes some time. </dd></dl>

</div>
</div>
<a id="aab6fb46377e40b2f9d6aabf93c76ff3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab6fb46377e40b2f9d6aabf93c76ff3a">&#9670;&nbsp;</a></span>calcFPS()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class FPS &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::ihs::OpenGLViewer::calcFPS </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer_1_1_f_p_s.html">FPS</a> &amp;&#160;</td>
          <td class="paramname"><em>fps</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Measures the performance of the current thread (selected by passing the corresponding 'fps' helper object). The resulting value is stored in the fps object. </p>
<div class="fragment"><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        {</div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;          <span class="keyword">static</span> <a class="code" href="classpcl_1_1_stop_watch.html">pcl::StopWatch</a> sw;</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;          <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count = 0;</div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;          ++count;</div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;          <span class="keywordflow">if</span> (sw.<a class="code" href="classpcl_1_1_stop_watch.html#a13f07f01df8ea1feb8d7d5fe3a0d22eb">getTimeSeconds</a> () &gt;= .2)</div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;          {</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;            fps.value () = <span class="keyword">static_cast &lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span> (count) / sw.<a class="code" href="classpcl_1_1_stop_watch.html#a13f07f01df8ea1feb8d7d5fe3a0d22eb">getTimeSeconds</a> ();</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;            count = 0;</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;            sw.<a class="code" href="classpcl_1_1_stop_watch.html#a6959d550a6aa1e163ae572f37417bca5">reset</a> ();</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;          }</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1_stop_watch_html"><div class="ttname"><a href="classpcl_1_1_stop_watch.html">pcl::StopWatch</a></div><div class="ttdoc">Simple stopwatch.</div><div class="ttdef"><b>Definition:</b> time.h:66</div></div>
<div class="ttc" id="aclasspcl_1_1_stop_watch_html_a13f07f01df8ea1feb8d7d5fe3a0d22eb"><div class="ttname"><a href="classpcl_1_1_stop_watch.html#a13f07f01df8ea1feb8d7d5fe3a0d22eb">pcl::StopWatch::getTimeSeconds</a></div><div class="ttdeci">double getTimeSeconds()</div><div class="ttdoc">Retrieve the time in seconds spent since the last call to reset().</div><div class="ttdef"><b>Definition:</b> time.h:86</div></div>
<div class="ttc" id="aclasspcl_1_1_stop_watch_html_a6959d550a6aa1e163ae572f37417bca5"><div class="ttname"><a href="classpcl_1_1_stop_watch.html#a6959d550a6aa1e163ae572f37417bca5">pcl::StopWatch::reset</a></div><div class="ttdeci">void reset()</div><div class="ttdoc">Reset the stopwatch to 0.</div><div class="ttdef"><b>Definition:</b> time.h:93</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a129885b41e9a4ea72bc50f093db39780"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a129885b41e9a4ea72bc50f093db39780">&#9670;&nbsp;</a></span>drawMeshes()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::ihs::OpenGLViewer::drawMeshes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Draw all meshes. </p>
<dl class="section note"><dt>注解</dt><dd>Only triangle meshes are currently supported. </dd></dl>

</div>
</div>
<a id="a4270be1891ab01ab25db47d0e543017f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4270be1891ab01ab25db47d0e543017f">&#9670;&nbsp;</a></span>getMeshIsAdded()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::ihs::OpenGLViewer::getMeshIsAdded </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the mesh with the given id is added. </p>
<dl class="section note"><dt>注解</dt><dd>Must lock the mutex before calling this method. </dd></dl>

</div>
</div>
<a id="a7b5c8ff9117593e03d8621943becea03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b5c8ff9117593e03d8621943becea03">&#9670;&nbsp;</a></span>initializeGL()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::ihs::OpenGLViewer::initializeGL </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a href="http://doc.qt.digia.com/qt/qglwidget.html#initializeGL">http://doc.qt.digia.com/qt/qglwidget.html#initializeGL</a> </dd></dl>

</div>
</div>
<a id="a7e998f6b14529e76ee7fc44d14b19cd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e998f6b14529e76ee7fc44d14b19cd6">&#9670;&nbsp;</a></span>minimumSizeHint()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual QSize pcl::ihs::OpenGLViewer::minimumSizeHint </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a href="http://doc.qt.digia.com/qt/qwidget.html#minimumSizeHint-prop">http://doc.qt.digia.com/qt/qwidget.html#minimumSizeHint-prop</a> </dd></dl>

</div>
</div>
<a id="aa037721402932ac339ec1394b6bfb71c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa037721402932ac339ec1394b6bfb71c">&#9670;&nbsp;</a></span>mouseMoveEvent()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::ihs::OpenGLViewer::mouseMoveEvent </td>
          <td>(</td>
          <td class="paramtype">QMouseEvent *&#160;</td>
          <td class="paramname"><em>event</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a href="http://doc.qt.digia.com/qt/qwidget.html#mouseMoveEvent">http://doc.qt.digia.com/qt/qwidget.html#mouseMoveEvent</a> </dd></dl>

</div>
</div>
<a id="a10332f8176bfebc844cffb371a3b4fa3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10332f8176bfebc844cffb371a3b4fa3">&#9670;&nbsp;</a></span>mousePressEvent()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::ihs::OpenGLViewer::mousePressEvent </td>
          <td>(</td>
          <td class="paramtype">QMouseEvent *&#160;</td>
          <td class="paramname"><em>event</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a href="http://doc.qt.digia.com/qt/qwidget.html#mousePressEvent">http://doc.qt.digia.com/qt/qwidget.html#mousePressEvent</a> </dd></dl>

</div>
</div>
<a id="a8645defcb16553cc5db8d51b13779a3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8645defcb16553cc5db8d51b13779a3f">&#9670;&nbsp;</a></span>paintEvent()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void pcl::ihs::OpenGLViewer::paintEvent </td>
          <td>(</td>
          <td class="paramtype">QPaintEvent *&#160;</td>
          <td class="paramname"><em>event</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a href="http://doc.qt.digia.com/qt/qwidget.html#paintEvent">http://doc.qt.digia.com/qt/qwidget.html#paintEvent</a> </dd>
<dd>
<a href="http://doc.qt.digia.com/qt/opengl-overpainting.html">http://doc.qt.digia.com/qt/opengl-overpainting.html</a> </dd></dl>

<p>被 <a class="el" href="classpcl_1_1ihs_1_1_offline_integration.html#a0c40aaeef8e0bf86e4accb6908a0c188">pcl::ihs::OfflineIntegration</a> , 以及 <a class="el" href="classpcl_1_1ihs_1_1_in_hand_scanner.html#a9be02f1be82000057576098c041649bc">pcl::ihs::InHandScanner</a> 重载.</p>

</div>
</div>
<a id="ac2bfcd7f6b8663552d5d92542c3a8a91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2bfcd7f6b8663552d5d92542c3a8a91">&#9670;&nbsp;</a></span>removeMesh()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::ihs::OpenGLViewer::removeMesh </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove the mesh with the given id. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>Identifier of the mesh (results in a failure if the id does not exist). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if success. </dd></dl>

</div>
</div>
<a id="a49f5606250b6754f465a676536aba29b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49f5606250b6754f465a676536aba29b">&#9670;&nbsp;</a></span>resizeGL()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::ihs::OpenGLViewer::resizeGL </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a href="http://doc.qt.digia.com/qt/qglwidget.html#resizeGL">http://doc.qt.digia.com/qt/qglwidget.html#resizeGL</a> </dd></dl>

</div>
</div>
<a id="ad055ccfc24cac9e61328368cfe54bdbb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad055ccfc24cac9e61328368cfe54bdbb">&#9670;&nbsp;</a></span>setPivot()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::ihs::OpenGLViewer::setPivot </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Searches the given id in the drawn meshes and calculates the pivot as the centroid of the found geometry. </p>
<dl class="section note"><dt>注解</dt><dd>Returns immediately and computes the pivot in another thread. </dd></dl>

</div>
</div>
<a id="a75e40844574ca2c0bf104f7afb797051"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75e40844574ca2c0bf104f7afb797051">&#9670;&nbsp;</a></span>setupViewport()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::ihs::OpenGLViewer::setupViewport </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>h</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a href="http://www.opengl.org/sdk/docs/man/xhtml/glViewport.xml">http://www.opengl.org/sdk/docs/man/xhtml/glViewport.xml</a> </dd></dl>

</div>
</div>
<a id="a1070b3d16312e080b8ec92379f224a65"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1070b3d16312e080b8ec92379f224a65">&#9670;&nbsp;</a></span>sizeHint()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual QSize pcl::ihs::OpenGLViewer::sizeHint </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a href="http://doc.qt.digia.com/qt/qwidget.html#sizeHint-prop">http://doc.qt.digia.com/qt/qwidget.html#sizeHint-prop</a> </dd></dl>

</div>
</div>
<a id="a5b1c9829dce9733267be6d15b470e0f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b1c9829dce9733267be6d15b470e0f5">&#9670;&nbsp;</a></span>wheelEvent()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::ihs::OpenGLViewer::wheelEvent </td>
          <td>(</td>
          <td class="paramtype">QWheelEvent *&#160;</td>
          <td class="paramname"><em>event</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a href="http://doc.qt.digia.com/qt/qwidget.html#wheelEvent">http://doc.qt.digia.com/qt/qwidget.html#wheelEvent</a> </dd></dl>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>apps/in_hand_scanner/include/pcl/apps/in_hand_scanner/<a class="el" href="opengl__viewer_8h_source.html">opengl_viewer.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><b>ihs</b></li><li class="navelem"><a class="el" href="classpcl_1_1ihs_1_1_open_g_l_viewer.html">OpenGLViewer</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
